package ui;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import Work.*;

/*四种修改书籍方法的具体实现*/
public class BookOther1 extends JFrame implements ActionListener {

	JTextField jtf1, jtf2;
	private JButton returnbutton;
	Jdbc db = new Jdbc();

	public void Updateb_name() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按书籍名称修改"));
		JLabel jl1 = new JLabel("要修改的书籍编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("修改后的书籍名称:");
		jtf2 = new JTextField(10);

		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes1");
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("书籍名称修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);

	}

	public void Updateb_author() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按书籍作者修改"));
		JLabel jl1 = new JLabel("要修改的书籍编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("书籍作者姓名:");
		jtf2 = new JTextField(10);
		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes2");// 没看懂
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("书籍作者修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);
	}

	public void Updateprice() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按书籍价格修改"));
		JLabel jl1 = new JLabel("要修改的书籍编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("书籍价格:");
		jtf2 = new JTextField(10);
		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes3");// 没看懂
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("书籍价格修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);
	}

	public void Updateamount() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按库存数量修改"));
		JLabel jl1 = new JLabel("要修改的书籍编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("库存数量:");
		jtf2 = new JTextField(10);
		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes4");// 没看懂
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("书籍库存数量修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		ChangeBook changebook = new ChangeBook();
		ArrayList<Book> booklist = changebook.read(db);
		ForeignKey foreignkey = new ForeignKey();
		BookOther BookOther = new BookOther();
		BookOther1 bookother1 = new BookOther1();
		if (e.getActionCommand().equals("yes1")) {//书籍名称
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			} else if (!foreignkey.FindB_ID(booklist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此书，请重新输入！");
				bookother1.Updateb_name();
			} else {
				db.uiupdatebook(db, text1, text2, 1);
				JOptionPane.showMessageDialog(this, " 书籍编号为 " + text1 + "\n书籍信息修改成功");
				this.dispose();
				BookOther.UpdateBookButton();
			}
		} else if (e.getActionCommand().equals("yes2")) {//书籍作者
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			}else if (!foreignkey.FindB_ID(booklist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此书，请重新输入！");
				bookother1.Updateb_author();
			} else {
				db.uiupdatebook(db, text1, text2, 2);
				JOptionPane.showMessageDialog(this, " 书籍编号为 " + text1 + "\n书籍信息修改成功");
				this.dispose();
				BookOther.UpdateBookButton();
			}
		} else if (e.getActionCommand().equals("yes3")) {//书价格
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			}else if (!foreignkey.FindB_ID(booklist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此书，请重新输入！");
				bookother1.Updateprice();
			} else {
				db.uiupdatebook(db, text1, text2, 3);
				JOptionPane.showMessageDialog(this, " 书籍编号为 " + text1 + "\n书籍信息修改成功");
				this.dispose();
				BookOther.UpdateBookButton();
			}
		} else if (e.getActionCommand().equals("yes4")) {//库存数
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			}else if (!foreignkey.FindB_ID(booklist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此书，请重新输入！");
				bookother1.Updateamount();
			} else {
				db.uiupdatebook(db, text1, text2, 4);
				JOptionPane.showMessageDialog(this, " 书籍编号为" + text1 + "\n书籍信息修改成功");
				this.dispose();
				BookOther.UpdateBookButton();
			}
		} else if (e.getActionCommand().equals("ret")) {
			this.dispose();
			BookOther.UpdateBookButton();
		}
	}
}
